;	����������� ��������� ������� ���� ��������� � "�����" ���������� ��������� �� �����
;	---------------------------------------------------
;	����� ���������: int 80h	
;
cr	equ	0dh
lf	equ	0ah
	absolute	2ch
Blocokr	resw	1
	absolute 80h			;��������� ���� ����� �����-�������� 80h
Lparam	resb	1			;����� ������ �������
Param	resb	1			;������ ���� ������
	segment	code	
	org	100h
Start:	jmp	Init
Begin	sti
;����� ����� ��������� �� �����
	mov	ax,[es:Blocokr]  	;�������� � DS
	mov	ds,ax			; �����-������� ����� ���������
	mov	ah,0eh			;0Eh - ������� ����� �������
	mov	bh,0			;������� �������� ������
	xor	di,di			;DI <- 0
.Next:	mov	al,[di]			;�������� ��������� ������
	cmp	al,0			;��������� �� 0
	jnz	.M1             	;������ �� 0
	mov	al,[di+1]		;�������� ��������� ����� 0 ������
	cmp	al,0			;��������� �� 0
	jz	.M2			;���� ��� ������� 0 �� �������
	mov	al,0			;���� ���� ������ 0 �� ������� �� �����
.M1:	int	10h			;����� ������� �� �����
	inc	di			;����������� BX �� 1
	jmp	.Next			;��������� ��� ����. �������
;����� �������� cr � lf
.M2:    mov	al,cr			;����� ������� cr 
	int	10h			; �� �����
	mov	al,lf			;����� ������� lf 
	int	10h			; �� �����
;����� "������" ���������
	xor	cx,cx			;��������� CX
	mov	cl,[es:Lparam]		;CL <- ����� ������
	cmp	cx,0			;����� �����������?
	jz	.Exit			;���� ��
	xor	di,di			;DI <- 0
.Loop:	mov	al,[es:Param+di]	;����� ����������
        int	10h			;����� ������� �� �����
	inc	di
	loop	.Loop			;��������� ��� ����. �������
.Exit:	iret
Init:	mov	ax,2580h			;������ ���������� ������ �����������
        mov	dx,Begin			; � ������ ����������
	int	21h				; � ������� 80h
	mov	ah,49h				;������������ ������� ������,
	mov	es,[Blocokr]			; ����������
	int	21h				; ������ ���������
	mov	dx,Init				;������� � DOS, ���������
	int	27h                             ; �����������
